Messaging achievement pictograph display system

ABSTRACT

Systems and methods for causing display of a messaging achievement pictograph based on messaging activity are provided. In some example embodiments, a message activity communication is received by a messaging activity service from a client device, the messaging active communication causing and adjustment to a message activity score and the message activity score transgressing a first threshold activity score. Responsive to the message activity transgressing the first threshold activity score, an achievement pictograph is displayed on the client device. In some example embodiments, the pictograph may be ephemeral and removal of the pictograph may be triggered by a designated time or by the message activity score transgressing a second threshold activity score. In some example embodiments, a notification is generated that notifies a user of the display or removal from display of the achievement pictograph.

CLAIM OF PRIORITY

This application is a continuation of U.S. patent application Ser. No.15/098,630, filed on Apr. 14, 2016, which claims the benefit of priorityof U.S. Provisional Application No. 62/318,950, filed on Apr. 6, 2016,each of which is hereby incorporated by reference in their entireties.

TECHNICAL FIELD

Embodiments of the present disclosure relate generally to mobilecomputing technology and, more particularly, but not by way oflimitation, to a messaging achievement pictograph display system.

BACKGROUND

In recent years, mobile devices, wearable devices, smart devices, andthe like have pervaded nearly every aspect of modern life. Emojis are apopular form of expression in digital communications. As a result ofthis popularity, there is an ever-increasing variety of emojis for awide variety of expressions.

BRIEF DESCRIPTION OF THE DRAWINGS

Various ones of the appended drawings merely illustrate exampleembodiments of the present disclosure and should not be considered aslimiting its scope.

FIG. 1 is a block diagram illustrating a networked system, according tosome example embodiments.

FIG. 2 is a block diagram illustrating an example embodiment of amessaging achievement pictograph display system, according to someexample embodiments.

FIG. 3 is a flow diagram illustrating an example method of causingdisplay of a messaging achievement pictograph based on messagingactivity, according to some example embodiments.

FIG. 4 is a flow diagram illustrating further example operations forcausing display of a messaging achievement pictograph, according to someexample embodiments.

FIG. 5 is a flow diagram illustrating further example operations forcausing display of a messaging achievement pictograph, according to someexample embodiments.

FIGS. 6 and 7 are diagrams illustrating an example of a graphical userinterface that is configured to display pictographs and a notificationwindow to show when a new pictograph is added.

FIGS. 8 and 9 are diagrams illustrating an example of a graphical userinterface that is configured to display messages and pictographs as wellas a notification window to show when a currently displayed pictographwill be removed.

FIG. 10 is a block diagram illustrating an example of a softwarearchitecture that may be installed on a machine, according to someexample embodiments.

FIG. 11 is a block diagram presenting a diagrammatic representation of amachine in the form of a computer system within which a set ofinstructions may be executed for causing the machine to perform any ofthe methodologies discussed herein, according to an example embodiment.

The headings provided herein are merely for convenience and do notnecessarily affect the scope or meaning of the terms used.

DETAILED DESCRIPTION

The description that follows includes systems, methods, techniques,instruction sequences, and computing machine program products thatembody illustrative embodiments of the disclosure. In the followingdescription, for the purposes of explanation, numerous specific detailsare set forth in order to provide an understanding of variousembodiments of the inventive subject matter. It will be evident,however, to those skilled in the art, that embodiments of the inventivesubject matter may be practiced without these specific details. Ingeneral, well-known instruction instances, protocols, structures, andtechniques are not necessarily shown in detail.

Person to person communication can frequently involve the use of textmessages, picture messages and video messages. A social messaging systemmay facilitate these communications. Additionally, a social messagingsystem may directly receive messages from a user. However, the user may,knowingly or unknowingly, fall out of touch with other contacts that theuser had frequent communication with. Alternatively, the user may nottake advantage of various features of the messaging system because theuser does not recognize the function of the features. Previouslyexisting systems allow for various forms of messaging but fail toprovide adequate encouragement for the user to communicate with contactsthat have recently gone “stale” due to inactivity or where the user doesnot take advantage of helpful features of the social messaging system.

In various embodiments described herein, to encourage user participationin messaging, pictographs may be displayed to the user to symbolize anachievement related to messaging. Each pictograph may be one of a vastnumber of emojis, and the display is linked to the type of achievementfulfilled by the user. In order to assess whether the achievement isfulfilled, the social messaging system may receive a message activitycommunication from a client device, access messaging activity fromvarious databases, determine a messaging score associated with theachievement pictograph, determine whether the message activitycommunication dictates an adjustment of the message activity score,further determine whether the message activity score transgresses afirst threshold activity score, and display the achievement pictograph.

In additional example embodiments, the achievement pictographs may beephemeral and the system can access deletion data that designates whenthe display of the pictograph may be removed. For example, theachievement pictograph may be removed if the message activity scorefalls below a certain value (e.g. transgresses a second activitythreshold). The system can further notify a user, about a newachievement pictograph or the removal of an achievement pictograph byway of a notification window on a client device.

In an example embodiment, a user may send a message to a contact using asocial messaging system. Some systems will additionally receive amessage activity communication that contains data about the message.Within the social messaging system, the message achievement pictographdisplay system uses this data to adjust a message activity score relatedto messages sent between the user and the contact. In some embodiments,the message achievement pictograph display system further compares theadjusted message activity score to a first threshold activity score. Ifthe message activity score transgresses the first threshold activityscore (e.g. passes a threshold), then the contact is designated as a“best friend” of the user and an achievement pictograph is displayed onthe client device. The user can be notified of the new “best friend”status of the contact using a notification window. At a later time, ifthe message activity score transgresses a second threshold activityscore (e.g. falls below a second threshold), the contact no longerqualifies as a “best friend” and the achievement pictograph is removedfrom display. Other embodiments may manage achievements in other ways inaccordance with other embodiments described herein.

FIG. 1 is a network diagram depicting a network system 100 having aclient-server architecture configured for exchanging data over anetwork, according to one embodiment. For example, the network system100 may be a messaging system where clients communicate and exchangedata within the network system 100. The data may pertain to variousfunctions (e.g., sending and receiving text and media communication,determining geolocation, etc.) and aspects (e.g., transmission ofmessages between client devices and servers) associated with the networksystem 100 and its users. Although illustrated herein as client-serverarchitecture, other embodiments may include other network architectures,such as peer-to-peer or distributed network environments.

As shown in FIG. 1 , the network system 100 includes a social messagingsystem 130. The social messaging system 130 is generally based on athree-tiered architecture, consisting of an interface layer 124, anapplication logic layer 126, and a data layer 128. As is understood byskilled artisans in the relevant computer and Internet-related arts,each module or engine shown in FIG. 1 represents a set of executablesoftware instructions and the corresponding hardware (e.g., memory andprocessor) for executing the instructions. To avoid obscuring theinventive subject matter with unnecessary detail, various functionalmodules and engines that are not germane to conveying an understandingof the inventive subject matter have been omitted from FIG. 1 .Additional functional modules and engines may be used with a socialmessaging system 130, such as that illustrated in FIG. 1 , to facilitateadditional functionality that is not specifically described herein.Furthermore, the various functional modules and engines depicted in FIG.1 may reside on a single server computer, or may be distributed acrossseveral server computers in various arrangements. Moreover, although thesocial messaging system 130 is depicted in FIG. 1 as a three-tieredarchitecture, the inventive subject matter is by no means limited tosuch an architecture.

As shown in FIG. 1 , the interface layer 124 consists of interfacemodule(s) (e.g., a web server) 140, which receive requests from variousclient-computing devices and servers, such as client devices 110A and1101B executing client application 112. In response to receivedrequests, the interface module(s) 140 communicate appropriate responsesto requesting devices via a network 104. For example, the interfacemodule 140 can receive requests such as Hypertext Transfer Protocol(HTTP) requests, or other web-based Application Programming Interface(API) requests.

The client devices 110A and 110B can execute conventional web browserapplications or applications (also referred to as “apps”) that have beendeveloped for a specific platform to include any of a wide variety ofmobile computing devices and mobile-specific operating systems (e.g.,IOS™, ANDROID™, WINDOWS® PHONE). In an example, the client device(s) 110are executing the client application 112. The client application 112 canprovide functionality to present information to a first user 106 or asecond user 108 and communicate via the network 104 to exchangeinformation with the social messaging system 130. Each of the clientdevices 110A and 110 B can comprise a computing device that includes atleast a display and communication capabilities with the network 104 toaccess the social messaging system 130. The client devices 110A and 110Bcomprise, but are not limited to, remote devices, work stations,computers, general purpose computers, Internet appliances, hand-helddevices, wireless devices, portable devices, wearable computers,cellular or mobile phones, personal digital assistants (PDAs), smartphones, tablets, ultrabooks, netbooks, laptops, desktops,multi-processor systems, microprocessor-based or programmable consumerelectronics, game consoles, set-top boxes, network PCs, mini-computers,and the like. User(s) 106 can be a person, a machine, or other means ofinteracting with the client devices 110A and 110B. In some embodiments,the users 106 and 108 interact with the social messaging system 130 viathe client devices 110A and 110 B.

As shown in FIG. 1 , the data layer 128 has database server(s) 132 thatfacilitate access to information storage repositories or database(s)134. The database(s) 134 are storage devices that store data such asmember profile data, social graph data (e.g., relationships betweenmembers of the social messaging system 130), and other user data.

An individual can register with the social messaging system 130 tobecome a member of the social messaging system 130. Once registered, amember can form social network relationships (e.g., friends, followers,or contacts) on the social messaging system 130 and interact with abroad range of applications provided by the social messaging system 130.

The application logic layer 126 includes various application logicmodule(s) 150, which, in conjunction with the interface module(s) 140,generate various user interfaces with data retrieved from various datasources or data services in the data layer 128. Individual applicationlogic module(s) 150 may be used to implement the functionalityassociated with various applications, services, and features of thesocial messaging system 130. For instance, a social messagingapplication can be implemented with one or more of the application logicmodule(s) 150. The social messaging application provides a messagingmechanism for users of the client devices 110A and 110B to send andreceive messages that include text and media content such as picturesand video. The client devices 110A and 110B may access and view themessages from the social messaging application for a specified period oftime (e.g., limited or unlimited). In an example, a particular messageis accessible to a message recipient for a predefined duration (e.g.,specified by a message sender) that begins when the particular messageis first accessed. After the predefined duration elapses, the message isdeleted and is no longer accessible to the message recipient. In variousembodiments, other applications and services may be separately embodiedin their own application server module(s) 150.

As illustrated in FIG. 1 , the social messaging system 130 includes amessaging achievement pictograph display system 160. In variousembodiments, the messaging achievement pictograph display system 160 canbe implemented as a standalone system operating on a separate computingdevice with one or more processors, and is not necessarily included inthe social messaging system 130. In some embodiments, the client devices110A and 110B include a portion of the messaging achievement pictographdisplay system 160. (e.g., a portion of the messaging achievementpictograph display system 160 included independently or in the clientapplication 112). In embodiments where the client devices 110A and 110Bincludes a portion of the messaging achievement pictograph displaysystem 160, the client devices 110A and 110B can work alone or inconjunction with the portion of the messaging achievement pictographdisplay system 160 included in a particular application server orincluded in the social messaging system 130.

FIG. 2 is a block diagram 200 of the messaging achievement pictographdisplay system 160 according to some example embodiments. Otherembodiments may be implemented using various other structures. Themessaging achievement pictograph display system 160 is shown to includea communication engine 210, an adjustment engine 220, a parameter engine230, a trigger engine 240, and a display engine 250. All, or some, ofthe modules 210-250 communicate with each other, for example, via anetwork coupling, shared memory, and the like. Each module of themodules can be implemented as a single module, combined into othermodules, or further subdivided into multiple modules. Other modules notpertinent to example embodiments can also be included, but are notshown.

The communication module 210 provides various communicationsfunctionality. For example, in some embodiments the communication engine210 receives messaging activity data from the client devices 110A and110B and accesses databases 134 using the database server 132 toretrieve message indicators and parameter indicators. In a specificexample, the communication module retrieves a message activitycommunication that contains data related to a message sent from thefirst user 106 and the second user 108. The communication engine 210additionally retrieves, from the databases 134, a message indicatorcontaining a message activity score related to the data within themessage activity communication. Finally, the communication engine 210retrieves a parameter indicator containing a first threshold activityscore related to the message activity score and an achievementpictograph. The communication module 210 further exchanges networkcommunications with the database server 132, and the client devices 110Aand 110B. The information retrieved by the communication module 210includes data associated with the user (e.g., member profile data froman online account or social network service data) or other data tofacilitate the functionality described herein.

The adjustment engine 220 provides functionality to determine a scoreadjustment for a message activity score and make the adjustment. Forexample, the adjustment engine 220 determines, based on data containedin a message activity communication, that a message activity scoreshould be increased or decreased by a certain amount. Continuing theexample above, the adjustment engine 220 may determine that a messageactivity score related to the first user 106 and the second user 108should be increased from a lower score to a higher score based on themessage activity communication.

The parameter engine 230 provides functionality to match a parameterindicator to a message indicator, determine whether a message activityscore transgresses a first or a second threshold activity score, andcause the display engine 250 to display an achievement pictograph. Forexample, the parameter engine may determine that a parameter indicatormatches a message indicator and that a message activity score includedin the message indicator transgresses a first threshold activity scorebecause the message activity score is equal to or greater than the firstthreshold activity score. The parameter engine 230 then communicateswith the display engine 250 to cause the display engine 250 to displaythe achievement pictograph.

Continuing the example above, the parameter engine 230 determines that aparameter indicator matches the message indicator and compares themessage activity score that was adjusted due to the message to a firstthreshold activity score. Transgressing the first threshold activityscore may indicate that an achievement pictograph be displayed showingthat the first user 106 and the second user 108 (e.g. accountsassociated with users) are “best friends.” In this example, theparameter engine 130 determines that the message activity score doestransgress the first threshold activity score, and the parameter engine130 further causes the display engine to display an achievementpictograph that is included in the message indicator.

The trigger engine 240 provides functionality to display a notificationto a user about an achievement pictograph display or initiate removal ofan achievement pictograph. For example, the trigger engine notifies thefirst user 106 that an achievement pictograph will be deleted unless thefirst user 106 takes a specific action, such as sending a message to thesecond user 108. The trigger engine can further determine that aspecific type of achievement pictograph will be removed after a certainday and can cause the display engine 250 to remove the achievementpictograph after the day is over.

The display engine 250 provides various presentation and user interfacefunctionality operable to interactively present and receive informationto and from the user. For example, the display engine 250 is utilizableto present or remove achievement pictographs based on communicationsfrom the parameter engine 230 or the trigger engine 240. In variousembodiments, the display engine 250 presents or causes presentation ofinformation (e.g., visually displaying information on a screen, acousticoutput, haptic feedback). The process of interactively presentinginformation is intended to include the exchange of information between aparticular device and the user. The user may provide input to interactwith the user interface in many possible manners, such as alphanumeric,point based (e.g., cursor), tactile, or other input (e.g., touch screen,tactile sensor, light sensor, infrared sensor, biometric sensor,microphone, gyroscope, accelerometer, or other sensors). The displayengine 250 provides many other user interfaces to facilitatefunctionality described herein. The term “presenting” as used herein isintended to include communicating information or instructions to aparticular device that is operable to perform presentation based on thecommunicated information or instructions.

In addition to the embodiments described above, a messaging achievementpictograph display system 160, in some embodiments, tracks multipleachievements scores and thresholds associated with two or more useraccounts. For example, one achievement score and associated threshold(s)may be associated with message frequency, one achievement and associatedthreshold(s) may be associated with a length of time that accounts havegone without allowing a timing threshold to expire betweencommunications, one achievement and associated threshold(s) may beassociated with particular types of communications or communicationmetadata (e.g. location, filters, message content type, etcetera). Invarious other embodiments, any other such achievement scores andassociated thresholds may be used. Additionally, such scores may betracked for associations or relationships between any number of users oruser accounts in a system, such that any account that has communicatedwith any other account may generate one or more achievement scoresassociated between those accounts.

FIG. 3 is a flow diagram illustrating an example method 300 for causingdisplay of a messaging achievement pictograph based on messagingactivity. The operations of the method 300 may be performed bycomponents of the messaging achievement pictograph system 160, and areso described below for the purposes of illustration.

At operation 310, the communication engine 210 receives, from the firstclient device 110A, a message activity communication that includes dataabout a message. The message is a communication sent from or received bythe first client device 110A correlated with the first user 106 and mayinclude a textual message, image message, or video message that is sentto or received from the second client device 110B correlated with thesecond user 108. The message could further include data that the firstuser 106 submits to the social messaging system 130 using the clientapplication 112. The communication engine 310 may receive the messageactivity over the network 104 and through the social messaging system130.

In an example embodiment, the first user 106 sends, using the clientapplication 112 on the first client device 110A, an ephemeral videomessage with an automatic deletion trigger to the second client device110B. The client application 112 on the first client device 110Aadditionally sends a message activity communication to the communicationengine 210, the message activity communication including data about themessage. In this example, the data could include information that themessage is an ephemeral video message that is seven seconds length andcontaining an additional image overlay as well as a text overlay.

In another example embodiment, the first user 106 may take a digitalphotograph, using the client application 112 on the first client device130, of the first user's pet cat, and scan the image, such that theimage is uploaded to the social messaging system 130. In this example,the communication engine 130 similarly receives a message activitycommunication about the message (e.g. image) to the social messagingsystem 130. The data in this example could include information aboutwhen the image was taken and that the client application 112 hasrecognized the image as being a picture of a cat.

At operation 320, the communication engine 210 accesses a messageindicator from one or more of the databases 134 using the databaseserver 132. The message indicator includes a message activity score(e.g. a numerical value between 0 and 100) that is based on pastmessages sent from or received by the client device.

In some example embodiments, the message activity score may be based onthe volume and form of messages exchanged between the first clientdevice 110A and the second client device 110B. For example, the messageactivity score from the above example involving the seven second videoephemeral message may only be based on ephemeral video messagesoccurring between the first user 106 and the second user 108. In theother example involving the picture of the cat, the messaging activitymay only be based on images uploaded from the first client device 110Ato the social messaging system 130 that the client application 112recognizes as being an image of a cat.

In operation 330, responsive to the communication engine 210 receivingthe message activity communication and accessing a message activityscore from one or more databases 134, the adjustment engine 220 adjuststhe message activity score based on the message activity communication.For example, the adjustment engine 220 may determine that the data aboutthe message processed by the first user device 110A and included in themessage activity communication has a numerical weight in relation to themessage activity score based on the type of message and length ofmessage, among other factors. In the example, the numerical weightdetermined by the adjustment engine 220 may be added directly to themessage activity score associated with the message indicator.

In an example embodiment, several message activity scores may beaccessed by the communication engine 210 and adjusted by the adjustmentengine 220 based on the same message activity communication. In theprevious example involving the seven second ephemeral video message, afirst message activity score may be based on at least one video messagebeing sent from the first user 106 to the second user 108 and at leastone video message being sent from the second user 108 to the first user106 within the past 24 hours. Additionally, a second message activityscore may be based on the total number of text, image, and videomessages exchanged between the first user 106 and the second user 108.Thus, the adjustment engine 220 may make or abstain from makingadjustments to the first message activity score or the second activityscore based on the content of the message. In this example, theadjustment engine 220 adds a weighted value to the first messageactivity score since the data about the ephemeral video message detailsthat the message was sent from the first client device 110A within thelast 24 hours. The adjustment engine 220 additionally adds a weightedvalue to the second message activity score since the ephemeral videomessage counts as any message between the first user 106 and the seconduser 108 over the client application 112.

In some embodiments, the weighted value added to the score may have atime limit condition such that the adjustment engine 220 automaticallyremoves the weight previously added after a designated amount of time.For example, in the above illustration, the first message activity scoreis only adjustable by the adjustment engine 220 if the ephemeral videomessage was sent or received by the first client device 110A in the past24 hours. After 24 hours elapses, the adjustment engine mayautomatically remove the weight added to the first messaging score thatwas based on the messaging activity communication. Thus, adjustments toa message activity score may have time limits and “expire” at the end ofthe time limit. In other embodiments, any other such time limitconditions may be used (e.g. 30 minutes, one hour, one week, etcetera.)

At operation 340 and 350, responsive to the adjustment engine 220 makingan adjustment to the message activity score, the communication engine210 accesses a parameter indicator (e.g. a unique data marker) thatincludes a first threshold activity score and an achievement pictographand the parameter engine 230 matches the message indicator to theparameter indicator. The parameter indicator may be located in at leastone database 134 and accessible by the communication engine 210 over thedatabase server 132. In some embodiments, the communication engine 210may access more than one parameter indicator and in further exampleembodiments, the parameter engine 230 may determine that more than oneparameter indicator matches the message indicator.

In the above example involving the user taking a picture of the cat, thecommunication engine 210 may access a parameter indicator that is linkedto a threshold activity score. The threshold activity score in thisexample, is based on a number of uploads of cat images using the clientapplication 112 in order to receive an achievement. In the case wherethe message activity score is based on the number of cat images that thefirst user 106 has uploaded to the social messaging system 130 using theclient application 112, the parameter engine 230 will determine that theparameter indicator matches the message indicator.

In operation 360, the parameter engine 230 further determines themessage activity score transgresses the threshold activity score. Inexample embodiments, the message activity score may transgress thethreshold activity score by exceeding a maximum activity score, or byfalling below a minimum activity score.

In the above example involving the user taking a picture of the cat, thethreshold activity score may designate an achievement pictograph bedisplayed if five images of cats are uploaded by a client device. Thefirst user 106, in this example, has just uploaded, using the clientapplication 130, her fifth picture of a cat with the first user device110A. The message activity score, as adjusted by the adjustment engine320, would therefore have a score of 5 since a weight of 1 would beadded to the message activity score by the adjustment engine for everycat image. In the example, the parameter engine 330 determines that themessage activity score of 5 transgresses the threshold activity score of5.

In operation 370, the display engine 250, responsive to the parameterengine 230 determining the message activity score transgresses thethreshold activity score, displays the achievement pictograph includedin the parameter indicator on the first client device 110A. In someexample embodiments, the trigger engine 240, responsive to the displayof the pictograph, retrieves a notification image from one or more ofthe databases 134 over the database server 132 and causes the displayengine 250 to display the notification on the first client device 110A.

For example, in response to the message activity score of 5transgressing the threshold activity score for images of a cat uploadedto the social messaging system 130, display engine 250 accesses thepictograph that is included in the message indicator and cause displayof the pictograph within the client application 112 on the first clientdevice 110A. Additionally, the trigger engine 240, responsive to thedisplay of the pictograph, accesses a notification image that describesthe achievement to the first user 106 and causes the display engine 250to display the notification.

In the example, the first user 106 views the notification as anautomatically generated window within the client application 112 on theclient device. The notification displays a textual achievement messageto the user, such as “Five Cat Pics Scanned” and may include a displayof the achievement pictograph within the notification. In this case, theachievement pictograph could be a cartoon image of the face of a cat.

The method of display of the achievement pictograph may vary acrossdifferent embodiments of the system. In an example embodiment, thepictograph is displayed in a designated section of the clientapplication 112 for achievement pictographs (e.g. a “trophy case”). Inthe embodiment, the first user 106 “collects” the achievementpictographs which are aggregated in a display designated for thepictographs. Once a pictograph is collected, it is permanently viewableby the first user 106 within the client application 112.

In another example embodiment, the achievement pictograph may beephemeral on the client application 112 and the display engine 250 mayremove the achievement pictograph at a later time. For example, thedisplay engine 250 may display an achievement pictograph next to acontact information of the second user 108 on a messaging screen of theclient application 112 where the achievement pictograph relates tocommunications between the first user 106 and the second user 108. Inthis example embodiment, he trigger engine 240 may access deletion datastored on one or more of the databases 134 stored on one or more of thedatabases, the deletion data designating that the display engine 250remove the achievement pictograph be removed at a designated time orafter a designated amount of time. At the designated time or after thedesignated amount of time, the trigger engine 240 determines that theachievement pictograph should be deleted and causes the display engine250 to remove the achievement pictograph from view on the clientapplication 112.

In an example, the messaging achievement pictograph display systemcauses display of a shamrock on the messaging screen of the clientapplication 112 on a first client device 110A next to contactinformation of the second user 108 if the first user 106 sends anephemeral video message about St. Patrick's Day to the second user 108on March 17^(th). The communication engine 210 receives a messageactivity communication including data about a message sent from thefirst user 106 to the second user 108. The communication engine furtheraccesses a message indicator related to ephemeral video messages sent onSt. Patrick's Day that includes a message score. Since the messageactivity communication contains data about an ephemeral video messagesent on March 17^(th) (St. Patrick's Day), the adjustment engine 220adjusts the message activity score from 0 to 1. The communication engine210 then accesses a parameter indicator that includes a thresholdactivity score for the shamrock achievement and the shamrock achievementpictograph. The parameter engine 230 then matches the message indicatorthe parameter indicator and determines whether the message activityscore transgresses the threshold activity score. In this case, since thescores are binary (either there is an ephemeral video message sent onMarch 17^(th) or there is not), the parameter engine 230 determines themessage activity score transgresses the threshold activity score andcauses the display engine 250 to display the shamrock achievementpictograph next to the contact information of the second user 108 on themessaging screen of the client application 112 on the first clientdevice 110A. The trigger engine 240 may further access notification dataand cause the display engine 250 to display a notification window on theclient application 112 within the first client device 110A, thenotification window notifying the first user 106 about the achievementpictograph. The trigger engine 240 may also access deletion data thatdesignates all achievement pictographs related to St. Patrick's Dayshould be removed at 12:00 am on March 18^(th). Thus at 12 am on March18^(th), the trigger engine would cause the display engine 150 to removethe shamrock achievement pictograph from the messaging screen.

FIGS. 4 and 5 are flowcharts illustrating additional operations of themessaging achievement pictograph display system 110, according to someexample embodiments. In some example embodiments, the method 300includes additional sub-operations occurring after operation 370. Forexample, the method 300 may include operations 410, 420, and 430 asdepicted in FIG. 4 . In some example embodiments, operations 410, 420,and 430 included in the method 300 may be performed as part (e.g., aprecursor task, a subroutine, or a portion) of or subsequent tooperation 340 of method 300, in which the display engine 250 displays anachievement pictograph on the client application 112 on the first clientdevice 110A.

At operation 410, the parameter engine 230 detects that an achievementpictograph is currently displayed on the client application 112 by thedisplay engine. At 420, the parameter engine 230 further detects thatthe message activity score that previously transgressed the firstactivity threshold now transgresses a second activity threshold activityscore. Responsive to the message activity score transgressing the secondthreshold activity score, the parameter engine 230 causes the displayengine 250 to remove the achievement pictograph from the clientapplication 112 on the first user device.

In an example embodiment, the display engine 250 may display anachievement pictograph on the messaging screen of the client application112 next to contact information of the second user 108, the achievementpictograph awarded to friends (e.g. saved contacts) of the second userthat are determined to be one of the ten “closest” friends to the user.The “closeness” of friends to the second user 108 may be determined,using a message activity score, by the form, frequency, and timeframe ofmessages between the second user 108 and a friend. For example, theadjustment engine 220 could determine a higher weight to video messagesfrom the second user 108 to the friend than text messages, resulting inthe adjustment engine 220 raising the message activity score by agreater degree for a video message than for a text message.

In the above example, the first threshold activity score would be themessage activity score needed at a previous time for the first user tobe in the “top ten” friends for the second user 108. Since thepictograph is displayed, the first user's 106 message activity scoretransgressed the first threshold activity score at the previous time andallowed the first user 106 to receive the achievement. However, sincethe “closeness” between the second user 108 and the user's friends maychange over time, first threshold activity score from the previous timemay change to a second threshold activity score at a current time. Forinstance, if the second user 108 has become much more active on thesocial messaging system 130, the second user 108 may have added newfriends or increased messaging frequency with other friends. In thisexample, the first user's 106 message activity score related tocloseness with the second user transgresses the second thresholdactivity score by falling below the score. The parameter engine 230determines that the message activity score has transgressed the secondthreshold score, and causes the display engine 250 to remove the “topten friends” achievement pictograph that was displayed on the clientapplication 112 on the first user device 112. Thus, the achievementpictographs may be removed based on a designated time, a timeframe, orbased on activity by other users.

In some example embodiments, operations 510, 520, and 530 included inthe method 300 may be performed as part (e.g., a precursor task, asubroutine, or a portion) of operation 340 of method 300, in which thedisplay engine 250 displays an achievement pictograph on the clientapplication 112 on the first client device 110A.

In operation 510-520, the trigger engine 240 detects a specific quantityof time remaining in a designated time frame and determines that, afterexpiration of the time frame, a second threshold quantity will betransgressed such that the parameter engine 230 will remove theachievement pictograph. In operation 530, the trigger engine 240 causesthe display engine 250 to display a notification window warning the userthat the achievement pictograph will be removed after expiration of thetime limit and displaying the time of expiration.

For example, in the above illustration involving the seven secondephemeral video message, the parameter engine 230 detects that thedisplay engine 250 displays an achievement pictograph on the clientapplication 112 on the first client device 110A in response to ephemeralvideo messages being exchanged between the first client device 110A andthe second client device 110B. If the first user 106 has failed to sendan ephemeral video message to the second user 108 for 24 hours, this maycause the adjustment engine 120 to lower the message activity score suchthat the parameter engine 130 determines that the message activity scoretransgresses a second threshold activity score and causes the displayengine 150 to remove the achievement pictograph. In the example, if thefirst user 106 has failed to send an ephemeral video message to thesecond user 108 for 23 hours and 30 minutes, the trigger engine 240causes the display engine 250 to display a notification window warningthe user that the pictograph will be removed in 30 minutes unless thefirst user 106 sends an ephemeral video message to the second user 108.

FIGS. 6 and 7 are interface diagrams that display the client application112 running on the first user device 110A. The first user device 110Amay include a trophy interface 610 that is displayed on a graphical userinterface 605 of the first user device 110A. Within the trophy interface610, various achievement pictographs 620 in the form of emojis may bedisplayed. Further, the trophy interface 610 may also containpictographs that represent achievement pictographs that have not yetbeen unlocked 630 in the form of a “lock emoji.” When a new achievementpictograph is unlocked, a notification window 710 within the trophyinterface may be displayed containing an image of the achievementpictograph 720, as well as a description of the achievement 730. Theachievement pictograph may now further be visible in the trophyinterface 740.

FIGS. 8 and 9 are also interface diagrams that display aspects of aclient application such as the client application 112 running on thefirst user device 110A. The first user device 110A may include amessaging interface 810 that is displayed on the graphic user interface605. The messaging interface may include a search box 820 in which thefirst user 106 can search for contacts based on contact information. Themessaging interface 810 additionally includes a list of contacts withdisplays the contact information 830 of each contact including a name ofthe contact and an icon that shows the type of message exchanged withthe contact (an arrow represents an ephemeral video message and a blockrepresents a text message). Also displayed on the messaging interfaceare achievement pictographs in the form of emojis 840, 850. The smilewith closed eyes emoji 840 represents that the first user 106 is “bestfriends” with the contact, in that the contact is in the top ten friendsof the first user 106 in terms of “closeness” based on the messagesexchanged. In contrast, an emoji with sunglasses on represents that thecontact is “best friends” with the first user 106 but the first user isnot “best friends” with the contact (the first user 106 is in thecontact's top ten friends, but the contact is not in the first user's106 top ten friends).

The “fire” emoji represents that the user and the contact are on a “snapstreak” in that first user 106 and the contact have each sent each otheran ephemeral video message in the last 24 hours. The “4” designationshows that this is the fourth continuous iteration of a snap streakbetween first user 106 and the contact, meaning that the first user 106and the contact have each exchanged four messages with each otherwithout 24 hours elapsing between messages. If a snap streak is about toexpire, a notification display window 910 may be displayed with an imageof the snap streak emoji 920 and a message 930 detailing how the usercan avoid letting the snap streak expire.

When these effects are considered in aggregate, one or more of themethodologies described herein may obviate a need for certain efforts orresources that otherwise would be involved in messaging achievementpictograph display. Efforts expended by the user 132 in asset allocationevaluation may be reduced by use of (e.g., reliance upon) aspecial-purpose machine that implements one or more of the methodologiesdescribed herein. Computing resources used by one or more systems ormachines (e.g., within the network environment 100) may similarly bereduced (e.g., compared to systems or machines that lack the structuresdiscussed herein or are otherwise unable to perform the functionsdiscussed herein). Examples of such computing resources includeprocessor cycles, network traffic, computational capacity, main memoryusage, graphics rendering capacity, graphics memory usage, data storagecapacity, power consumption, and cooling capacity.

Modules, Components, and Logic

Certain embodiments are described herein as including logic or a numberof components, modules, or mechanisms. Modules can constitute eithersoftware modules (e.g., code embodied on a machine-readable medium or ina transmission signal) or hardware modules. A “hardware module” is atangible unit capable of performing certain operations and can beconfigured or arranged in a certain physical manner. In various exampleembodiments, one or more computer systems (e.g., a standalone computersystem, a client computer system, or a server computer system) or one ormore hardware modules of a computer system (e.g., a processor or a groupof processors) is configured by software (e.g., an application orapplication portion) as a hardware module that operates to performcertain operations as described herein.

In some embodiments, a hardware module is implemented mechanically,electronically, or any suitable combination thereof. For example, ahardware module can include dedicated circuitry or logic that ispermanently configured to perform certain operations. For example, ahardware module can be a special-purpose processor, such as aField-Programmable Gate Array (FPGA) or an Application SpecificIntegrated Circuit (ASIC). A hardware module may also includeprogrammable logic or circuitry that is temporarily configured bysoftware to perform certain operations. For example, a hardware modulecan include software encompassed within a general-purpose processor orother programmable processor. It will be appreciated that the decisionto implement a hardware module mechanically, in dedicated andpermanently configured circuitry, or in temporarily configured circuitry(e.g., configured by software) can be driven by cost and timeconsiderations.

Accordingly, the phrase “hardware module” should be understood toencompass a tangible entity, be that an entity that is physicallyconstructed, permanently configured (e.g., hardwired), or temporarilyconfigured (e.g., programmed) to operate in a certain manner or toperform certain operations described herein. As used herein,“hardware-implemented module” refers to a hardware module. Consideringembodiments in which hardware modules are temporarily configured (e.g.,programmed), each of the hardware modules need not be configured orinstantiated at any one instance in time. For example, where a hardwaremodule comprises a general-purpose processor configured by software tobecome a special-purpose processor, the general-purpose processor may beconfigured as respectively different special-purpose processors (e.g.,comprising different hardware modules) at different times. Software canaccordingly configure a particular processor or processors, for example,to constitute a particular hardware module at one instance of time andto constitute a different hardware module at a different instance oftime.

Hardware modules can provide information to, and receive informationfrom, other hardware modules. Accordingly, the described hardwaremodules can be regarded as being communicatively coupled. Where multiplehardware modules exist contemporaneously, communications can be achievedthrough signal transmission (e.g., over appropriate circuits and buses)between or among two or more of the hardware modules. In embodiments inwhich multiple hardware modules are configured or instantiated atdifferent times, communications between such hardware modules may beachieved, for example, through the storage and retrieval of informationin memory structures to which the multiple hardware modules have access.For example, one hardware module performs an operation and stores theoutput of that operation in a memory device to which it iscommunicatively coupled. A further hardware module can then, at a latertime, access the memory device to retrieve and process the storedoutput. Hardware modules can also initiate communications with input oroutput devices, and can operate on a resource (e.g., a collection ofinformation).

The various operations of example methods described herein can beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors constitute processor-implemented modulesthat operate to perform one or more operations or functions describedherein. As used herein, “processor-implemented module” refers to ahardware module implemented using one or more processors.

Similarly, the methods described herein can be at least partiallyprocessor-implemented, with a particular processor or processors beingan example of hardware. For example, at least some of the operations ofa method can be performed by one or more processors orprocessor-implemented modules. Moreover, the one or more processors mayalso operate to support performance of the relevant operations in a“cloud computing” environment or as a “software as a service” (SaaS).For example, at least some of the operations may be performed by a groupof computers (as examples of machines including processors), with theseoperations being accessible via a network (e.g., the Internet) and viaone or more appropriate interfaces (e.g., an Application ProgramInterface (API)).

The performance of certain of the operations may be distributed amongthe processors, not only residing within a single machine, but deployedacross a number of machines. In some example embodiments, the processorsor processor-implemented modules are located in a single geographiclocation (e.g., within a home environment, an office environment, or aserver farm). In other example embodiments, the processors orprocessor-implemented modules are distributed across a number ofgeographic locations.

Software Architecture

FIG. 10 is a block diagram 1000 illustrating an architecture of software1002, which can be installed on any one or more of the devices describedabove. FIG. 10 is merely a non-limiting example of a softwarearchitecture, and it will be appreciated that many other architecturescan be implemented to facilitate the functionality described herein. Invarious embodiments, the software 1002 is implemented by hardware suchas a machine 1100 of FIG. 11 that includes processors 1110, memory 1130,and I/O components 1150. In this example architecture, the software 1002can be conceptualized as a stack of layers where each layer may providea particular functionality. For example, the software 1002 includeslayers such as an operating system 1004, libraries 1006, frameworks1008, and applications 1010. Operationally, the applications 1010 invokeapplication programming interface (API) calls 1012 through the softwarestack and receive messages 1014 in response to the API calls 1012,consistent with some embodiments.

In various implementations, the operating system 1004 manages hardwareresources and provides common services. The operating system 1004includes, for example, a kernel 1020, services 1022, and drivers 1024.The kernel 1020 acts as an abstraction layer between the hardware andthe other software layers consistent with some embodiments. For example,the kernel 1020 provides memory management, processor management (e.g.,scheduling), component management, networking, and security settings,among other functionality. The services 1022 can provide other commonservices for the other software layers. The drivers 1024 are responsiblefor controlling or interfacing with the underlying hardware, accordingto some embodiments. For instance, the drivers 1024 can include displaydrivers, camera drivers, BLUETOOTH® drivers, flash memory drivers,serial communication drivers (e.g., Universal Serial Bus (USB) drivers),WI-FI® drivers, audio drivers, power management drivers, and so forth.

In some embodiments, the libraries 1006 provide a low-level commoninfrastructure utilized by the applications 1010. The libraries 1006 caninclude system libraries 1030 (e.g., C standard library) that canprovide functions such as memory allocation functions, stringmanipulation functions, mathematic functions, and the like. In addition,the libraries 1006 can include API libraries 1032 such as medialibraries (e.g., libraries to support presentation and manipulation ofvarious media formats such as Moving Picture Experts Group-4 (MPEG4),Advanced Video Coding (H.264 or AVC), Moving Picture Experts GroupLayer-3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR)audio codec, Joint Photographic Experts Group (JPEG or JPG), or PortableNetwork Graphics (PNG)), graphics libraries (e.g., an OpenGL frameworkused to render in two dimensions (2D) and three dimensions (3D) in agraphic context on a display), database libraries (e.g., SQLite toprovide various relational database functions), web libraries (e.g.,WebKit to provide web browsing functionality), and the like. Thelibraries 1006 can also include a wide variety of other libraries 1034to provide many other APIs to the applications 1010.

The frameworks 1008 provide a high-level common infrastructure that canbe utilized by the applications 1010, according to some embodiments. Forexample, the frameworks 1008 provide various graphic user interface(GUI) functions, high-level resource management, high-level locationservices, and so forth. The frameworks 1008 can provide a broad spectrumof other APIs that can be utilized by the applications 1010, some ofwhich may be specific to a particular operating system or platform.

In an example embodiment, the applications 1010 include a homeapplication 1050, a contacts application 1052, a browser application1054, a book reader application 1056, a location application 1058, amedia application 1060, a messaging application 1062, a game application1064, and a broad assortment of other applications such as a third partyapplication 1066. According to some embodiments, the applications 1010are programs that execute functions defined in the programs. Variousprogramming languages can be employed to create one or more of theapplications 1010, structured in a variety of manners, such asobject-oriented programming languages (e.g., Objective-C, Java, or C++)or procedural programming languages (e.g., C or assembly language). In aspecific example, the third party application 1066 (e.g., an applicationdeveloped using the ANDROID™ or IOS™ software development kit (SDK) byan entity other than the vendor of the particular platform) may bemobile software running on a mobile operating system such as IOS™,ANDROIDT™, WINDOWS® PHONE, or another mobile operating system. In thisexample, the third party application 1066 can invoke the API calls 1012provided by the operating system 1004 to facilitate functionalitydescribed herein.

Example Machine Architecture and Machine-Readable Medium

FIG. 11 is a block diagram illustrating components of a machine 1100,according to some embodiments, able to read instructions from amachine-readable medium (e.g., a machine-readable storage medium) andperform any one or more of the methodologies discussed herein.Specifically, FIG. 11 shows a diagrammatic representation of the machine1100 in the example form of a computer system, within which instructions1116 (e.g., software, a program, an application, an applet, an app, orother executable code) for causing the machine 1100 to perform any oneor more of the methodologies discussed herein can be executed. Inalternative embodiments, the machine 1100 operates as a standalonedevice or can be coupled (e.g., networked) to other machines. In anetworked deployment, the machine 1100 may operate in the capacity of aserver machine or a client machine in a server-client networkenvironment, or as a peer machine in a peer-to-peer (or distributed)network environment. The machine 1100 can comprise, but not be limitedto, a server computer, a client computer, a personal computer (PC), atablet computer, a laptop computer, a netbook, a set-top box (STB), apersonal digital assistant (PDA), an entertainment media system, acellular telephone, a smart phone, a mobile device, a wearable device(e.g., a smart watch), a smart home device (e.g., a smart appliance),other smart devices, a web appliance, a network router, a networkswitch, a network bridge, or any machine capable of executing theinstructions 1116, sequentially or otherwise, that specify actions to betaken by the machine 1100. Further, while only a single machine 1100 isillustrated, the term “machine” shall also be taken to include acollection of machines 1100 that individually or jointly execute theinstructions 1116 to perform any one or more of the methodologiesdiscussed herein.

In various embodiments, the machine 1100 comprises processors 1110,memory 1130, and I/O components 1150, which can be configured tocommunicate with each other via a bus 1102. In an example embodiment,the processors 1110 (e.g., a Central Processing Unit (CPU), a ReducedInstruction Set Computing (RISC) processor, a Complex Instruction SetComputing (CISC) processor, a Graphics Processing Unit (GPU), a DigitalSignal Processor (DSP), an Application Specific Integrated Circuit(ASIC), a Radio-Frequency Integrated Circuit (RFIC), another processor,or any suitable combination thereof) include, for example, a processor1112 and a processor 1114 that may execute the instructions 1116. Theterm “processor” is intended to include multi-core processors that maycomprise two or more independent processors (also referred to as“cores”) that can execute instructions contemporaneously. Although FIG.11 shows multiple processors, the machine 1100 may include a singleprocessor with a single core, a single processor with multiple cores(e.g., a multi-core processor), multiple processors with a single core,multiple processors with multiples cores, or any combination thereof.

The memory 1130 comprises a main memory 1132, a static memory 1134, anda storage unit 1136 accessible to the processors 1110 via the bus 1102,according to some embodiments. The storage unit 1136 can include amachine-readable medium 1138 on which are stored the instructions 1116embodying any one or more of the methodologies or functions describedherein. The instructions 1116 can also reside, completely or at leastpartially, within the main memory 1132, within the static memory 1134,within at least one of the processors 1110 (e.g., within the processor'scache memory), or any suitable combination thereof, during executionthereof by the machine 1100. Accordingly, in various embodiments, themain memory 1132, the static memory 1134, and the processors 1110 areconsidered machine-readable media 1138.

As used herein, the term “memory” refers to a machine-readable medium1138 able to store data temporarily or permanently and may be taken toinclude, but not be limited to, random-access memory (RAM), read-onlymemory (ROM), buffer memory, flash memory, and cache memory. While themachine-readable medium 1138 is shown in an example embodiment to be asingle medium, the term “machine-readable medium” should be taken toinclude a single medium or multiple media (e.g., a centralized ordistributed database, or associated caches and servers) able to storethe instructions 1116. The term “machine-readable medium” shall also betaken to include any medium, or combination of multiple media, that iscapable of storing instructions (e.g., instructions 1116) for executionby a machine (e.g., machine 1100), such that the instructions, whenexecuted by one or more processors of the machine 1100 (e.g., processors1110), cause the machine 1100 to perform any one or more of themethodologies described herein. Accordingly, a “machine-readable medium”refers to a single storage apparatus or device, as well as “cloud-based”storage systems or storage networks that include multiple storageapparatus or devices. The term “machine-readable medium” shallaccordingly be taken to include, but not be limited to, one or more datarepositories in the form of a solid-state memory (e.g., flash memory),an optical medium, a magnetic medium, other non-volatile memory (e.g.,Erasable Programmable Read-Only Memory (EPROM)), or any suitablecombination thereof. The term “machine-readable medium” specificallyexcludes non-statutory signals per se.

The I/O components 1150 include a wide variety of components to receiveinput, provide output, produce output, transmit information, exchangeinformation, capture measurements, and so on. In general, it will beappreciated that the I/O components 1150 can include many othercomponents that are not shown in FIG. 11 . The I/O components 1150 aregrouped according to functionality merely for simplifying the followingdiscussion, and the grouping is in no way limiting. In various exampleembodiments, the I/O components 1150 include output components 1152 andinput components 1154. The output components 1152 include visualcomponents (e.g., a display such as a plasma display panel (PDP), alight emitting diode (LED) display, a liquid crystal display (LCD), aprojector, or a cathode ray tube (CRT)), acoustic components (e.g.,speakers), haptic components (e.g., a vibratory motor), other signalgenerators, and so forth. The input components 1154 include alphanumericinput components (e.g., a keyboard, a touch screen configured to receivealphanumeric input, a photo-optical keyboard, or other alphanumericinput components), point based input components (e.g., a mouse, atouchpad, a trackball, a joystick, a motion sensor, or other pointinginstruments), tactile input components (e.g., a physical button, a touchscreen that provides location and force of touches or touch gestures, orother tactile input components), audio input components (e.g., amicrophone), and the like.

In some further example embodiments, the I/O components 1150 includebiometric components 1156, motion components 1158, environmentalcomponents 1160, or position components 1162, among a wide array ofother components. For example, the biometric components 1156 includecomponents to detect expressions (e.g., hand expressions, facialexpressions, vocal expressions, body gestures, or eye tracking), measurebiosignals (e.g., blood pressure, heart rate, body temperature,perspiration, or brain waves), identify a person (e.g., voiceidentification, retinal identification, facial identification,fingerprint identification, or electroencephalogram basedidentification), and the like. The motion components 1158 includeacceleration sensor components (e.g., an accelerometer), gravitationsensor components, rotation sensor components (e.g., a gyroscope), andso forth. The environmental components 1160 include, for example,illumination sensor components (e.g., a photometer), temperature sensorcomponents (e.g., one or more thermometers that detect ambienttemperature), humidity sensor components, pressure sensor components(e.g., a barometer), acoustic sensor components (e.g., one or moremicrophones that detect background noise), proximity sensor components(e.g., infrared sensors that detect nearby objects), gas sensorcomponents (e.g., machine olfaction detection sensors, gas detectionsensors to detect concentrations of hazardous gases for safety or tomeasure pollutants in the atmosphere), or other components that mayprovide indications, measurements, or signals corresponding to asurrounding physical environment. The position components 1162 includelocation sensor components (e.g., a Global Positioning System (GPS)receiver component), altitude sensor components (e.g., altimeters orbarometers that detect air pressure from which altitude may be derived),orientation sensor components (e.g., magnetometers), and the like.

Communication can be implemented using a wide variety of technologies.The 1/O components 1150 may include communication components 1164operable to couple the machine 1100 to a network 1180 or devices 1170via a coupling 1182 and a coupling 1172, respectively. For example, thecommunication components 1164 include a network interface component oranother suitable device to interface with the network 1180. In furtherexamples, communication components 1164 include wired communicationcomponents, wireless communication components, cellular communicationcomponents, Near Field Communication (NFC) components, BLUETOOTH®components (e.g., BLUETOOTH® Low Energy), WI-FI® components, and othercommunication components to provide communication via other modalities.The devices 1170 may be another machine or any of a wide variety ofperipheral devices (e.g., a peripheral device coupled via a UniversalSerial Bus (USB)).

Moreover, in some embodiments, the communication components 1164 detectidentifiers or include components operable to detect identifiers. Forexample, the communication components 1164 include Radio FrequencyIdentification (RFID) tag reader components, NFC smart tag detectioncomponents, optical reader components (e.g., an optical sensor to detectone-dimensional bar codes such as a Universal Product Code (UPC) barcode, multi-dimensional bar codes such as a Quick Response (QR) code,Aztec Code, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code,Uniform Commercial Code Reduced Space Symbology (UCC RSS)-2D bar codes,and other optical codes), acoustic detection components (e.g.,microphones to identify tagged audio signals), or any suitablecombination thereof. In addition, a variety of information can bederived via the communication components 1164, such as location viaInternet Protocol (IP) geo-location, location via WI-FI® signaltriangulation, location via detecting a BLUETOOTH® or NFC beacon signalthat may indicate a particular location, and so forth.

Transmission Medium

In various example embodiments, one or more portions of the network 1180can be an ad hoc network, an intranet, an extranet, a virtual privatenetwork (VPN), a local area network (LAN), a wireless LAN (WLAN), a widearea network (WAN), a wireless WAN (WWAN), a metropolitan area network(MAN), the Internet, a portion of the Internet, a portion of the PublicSwitched Telephone Network (PSTN), a plain old telephone service (POTS)network, a cellular telephone network, a wireless network, a WI-FI®network, another type of network, or a combination of two or more suchnetworks. For example, the network 1180 or a portion of the network 1180may include a wireless or cellular network, and the coupling 1182 may bea Code Division Multiple Access (CDMA) connection, a Global System forMobile communications (GSM) connection, or another type of cellular orwireless coupling. In this example, the coupling 1182 can implement anyof a variety of types of data transfer technology, such as SingleCarrier Radio Transmission Technology (1×RTT), Evolution-Data Optimized(EVDO) technology, General Packet Radio Service (GPRS) technology,Enhanced Data rates for GSM Evolution (EDGE) technology, thirdGeneration Partnership Project (3GPP) including 3G, fourth generationwireless (4G) networks, Universal Mobile Telecommunications System(UMTS), High Speed Packet Access (HSPA), Worldwide Interoperability forMicrowave Access (WiMAX), Long Term Evolution (LTE) standard, othersdefined by various standard-setting organizations, other long rangeprotocols, or other data transfer technology.

In example embodiments, the instructions 1116 are transmitted orreceived over the network 1180 using a transmission medium via a networkinterface device (e.g., a network interface component included in thecommunication components 1164) and utilizing any one of a number ofwell-known transfer protocols (e.g., Hypertext Transfer Protocol(HTTP)). Similarly, in other example embodiments, the instructions 1116are transmitted or received using a transmission medium via the coupling1172 (e.g., a peer-to-peer coupling) to the devices 1170. The term“transmission medium” shall be taken to include any intangible mediumthat is capable of storing, encoding, or carrying the instructions 1116for execution by the machine 1100, and includes digital or analogcommunications signals or other intangible media to facilitatecommunication of such software.

Furthermore, the machine-readable medium 1138 is non-transitory (inother words, not having any transitory signals) in that it does notembody a propagating signal. However, labeling the machine-readablemedium 1138 “non-transitory” should not be construed to mean that themedium is incapable of movement; the medium should be considered asbeing transportable from one physical location to another. Additionally,since the machine-readable medium 1138 is tangible, the medium may beconsidered to be a machine-readable device.

Language

Throughout this specification, plural instances may implementcomponents, operations, or structures described as a single instance.Although individual operations of one or more methods are illustratedand described as separate operations, one or more of the individualoperations may be performed concurrently, and nothing requires that theoperations be performed in the order illustrated. Structures andfunctionality presented as separate components in example configurationsmay be implemented as a combined structure or component. Similarly,structures and functionality presented as a single component may beimplemented as separate components. These and other variations,modifications, additions, and improvements fall within the scope of thesubject matter herein.

Although an overview of the inventive subject matter has been describedwith reference to specific example embodiments, various modificationsand changes may be made to these embodiments without departing from thebroader scope of embodiments of the present disclosure. Such embodimentsof the inventive subject matter may be referred to herein, individuallyor collectively, by the term “invention” merely for convenience andwithout intending to voluntarily limit the scope of this application toany single disclosure or inventive concept if more than one is, in fact,disclosed.

The embodiments illustrated herein are described in sufficient detail toenable those skilled in the art to practice the teachings disclosed.Other embodiments may be used and derived therefrom, such thatstructural and logical substitutions and changes may be made withoutdeparting from the scope of this disclosure. The Detailed Description,therefore, is not to be taken in a limiting sense, and the scope ofvarious embodiments is defined only by the appended claims, along withthe full range of equivalents to which such claims are entitled.

As used herein, the term “or” may be construed in either an inclusive orexclusive sense. Moreover, plural instances may be provided forresources, operations, or structures described herein as a singleinstance. Additionally, boundaries between various resources,operations, modules, engines, and data stores are somewhat arbitrary,and particular operations are illustrated in a context of specificillustrative configurations. Other allocations of functionality areenvisioned and may fall within a scope of various embodiments of thepresent disclosure. In general, structures and functionality presentedas separate resources in the example configurations may be implementedas a combined structure or resource. Similarly, structures andfunctionality presented as a single resource may be implemented asseparate resources. These and other variations, modifications,additions, and improvements fall within a scope of embodiments of thepresent disclosure as represented by the appended claims. Thespecification and drawings are, accordingly, to be regarded in anillustrative rather than a restrictive sense.

The invention claimed is:
 1. A method comprising: receiving, by aprocessor, a message activity communication from a first client device,the message activity communication including data about a messageprocessed by the first client device; in response to the data about themessage indicating a change in a volume of past ephemeral messagesexchanged between the first client device and a second client device,wherein the ephemeral messages are associated with a message deletiontrigger, accessing a first message activity score from the database thatis based on the volume of past ephemeral messages exchanged between thefirst client device and the second client device, adjusting the firstmessage activity score based on the change in the volume of pastephemeral messages exchanged between the first client device and thesecond client device, determining whether the first message activityscore is equal to or is greater than a first threshold activity score,in response to the first message activity score being equal to orgreater than the first threshold activity score, causing a firstachievement pictograph associated with the first message activity scoreand a first textual achievement message associated with the firstmessage activity score to be displayed on a user interface of the firstclient device and on a user interface of the second client device, inresponse to the data about the message indicating a change in a volumeof past video messages exchanged between the first client device and thesecond client device, accessing a second message activity score from thedatabase that is based on the volume of past video messages exchangedbetween the first client device and the second client device, adjustingthe second message activity score based on the change in the volume ofpast video messages exchanged between the first client device and thesecond client device, determining whether the second message activityscore is equal to or is greater than a second threshold activity score,and in response to the second message activity score being equal to orgreater than the second threshold activity score, causing a secondachievement pictograph associated with the second message activity scoreand a second textual achievement message associated with the secondmessage activity score to be displayed on a user interface of the firstclient device and on a user interface of the second client device. 2.The method of claim 1, further comprising: in response to the data aboutthe message indicating a change in a volume of past messages exchangedbetween the first client device and the processor, accessing a fourthmessage activity score from the database that is based on the volume ofpast messages exchanged between the first client device and theprocessor, adjusting the fourth message activity score based on thechange in the volume of past messages exchanged between the first clientdevice and the processor, determining whether the fourth messageactivity score is equal to or is greater than a fourth thresholdactivity score, and in response to the fourth message activity scorebeing equal to or greater than the fourth threshold activity score,causing a fourth achievement pictograph associated with the fourthmessage activity score and a fourth textual achievement messageassociated with the fourth message activity score to be displayed on auser interface of the first client device.
 3. The method of claim 1,wherein the first textual achievement message include an achievementnotification.
 4. The method of claim 1, wherein the first messageactivity score is further based on a time frame in which the pastpicture messages are exchanged between the first client device and thesecond client device.
 5. The method of claim 1, wherein the firstmessage activity score is further based on a time frame in which thepast video messages are exchanged between the first client device andthe second client device.
 6. The method of claim 1, further comprising:detecting that a first achievement pictograph is displayed on the userinterface of the first client device; determining the first messageactivity score transgresses a fifth threshold activity score; andresponsive to determining the first message activity score transgressesthe fifth threshold activity score, causing the first achievementpictograph to be removed from being displayed on the user interface ofthe first client device.
 7. The method of claim 6, wherein the fifththreshold activity score is transgressed when the processor does notreceive, within a designated time frame, the message activitycommunication including data about the message indicating the change inthe volume of past picture messages exchanged between the first clientdevice and the second client device.
 8. The method of claim 7, furthercomprising: detecting that the designated time frame has a designatedtime quantity remaining within the designated time frame; and causing atime limit notification to be displayed by the user interface of thefirst client device.
 9. A system comprising: a processor; and a memorystoring instructions that, when executed by the processor, causes theprocessor to perform operations comprising: receiving a message activitycommunication from a first client device, the message activitycommunication including data about a message processed by the firstclient device; in response to the data about the message indicating achange in a volume of past ephemeral messages exchanged between thefirst client device and a second client device, wherein the ephemeralmessages are associated with a message deletion trigger, accessing afirst message activity score from the database that is based on thevolume of past ephemeral messages exchanged between the first clientdevice and the second client device, adjusting the first messageactivity score based on the change in the volume of past ephemeralmessages exchanged between the first client device and the second clientdevice, determining whether the first message activity score is equal toor is greater than a first threshold activity score, in response to thefirst message activity score being equal to or greater than the firstthreshold activity score, causing a first achievement pictographassociated with the first message activity score and a first textualachievement message associated with the first message activity score tobe displayed on a user interface of the first client device and on auser interface of the second client device, in response to the dataabout the message indicating a change in a volume of past video messagesexchanged between the first client device and the second client device,accessing a second message activity score from the database that isbased on the volume of past video messages exchanged between the firstclient device and the second client device, adjusting the second messageactivity score based on the change in the volume of past video messagesexchanged between the first client device and the second client device,determining whether the second message activity score is equal to or isgreater than a second threshold activity score, and in response to thesecond message activity score being equal to or greater than the secondthreshold activity score, causing a second achievement pictographassociated with the second message activity score and a second textualachievement message associated with the second message activity score tobe displayed on a user interface of the first client device and on auser interface of the second client device.
 10. The system of claim 9,wherein the operations further comprise: in response to the data aboutthe message indicating a change in a volume of past messages exchangedbetween the first client device and the processor, accessing a fourthmessage activity score from the database that is based on the volume ofpast messages exchanged between the first client device and theprocessor, adjusting the fourth message activity score based on thechange in the volume of past messages exchanged between the first clientdevice and the processor, determining whether the fourth messageactivity score is equal to or is greater than a fourth thresholdactivity score, and in response to the fourth message activity scorebeing equal to or greater than the fourth threshold activity score,causing a fourth achievement pictograph associated with the fourthmessage activity score and a fourth textual achievement messageassociated with the fourth message activity score to be displayed on auser interface of the first client device.
 11. The system of claim 9,wherein the first textual achievement message include an achievementnotification.
 12. The system of claim 9, wherein the first messageactivity score is further based on a time frame in which the pastpicture messages are exchanged between the first client device and thesecond client device.
 13. The system of claim 9, wherein the firstmessage activity score is further based on a time frame in which thepast video messages are exchanged between the first client device andthe second client device.
 14. The system of claim 9, wherein theoperations further comprise: detecting that the first achievementpictograph is displayed on the user interface of the first clientdevice; determining the first message activity score transgresses afifth threshold activity score; and responsive to determining the firstmessage activity score transgresses the fifth threshold activity score,causing the first achievement pictograph to be removed from beingdisplayed on the user interface of the first client device.
 15. Thesystem of claim 14, wherein the fifth threshold activity score istransgressed when the processor does not receive, within a designatedtime frame, the message activity communication including data about themessage indicating the change in the volume of past picture messagesexchanged between the first client device and the second client device.16. The system of claim 15, wherein the operations further comprise:detecting that the designated time frame has a designated time quantityremaining within the designated time frame; and causing a time limitnotification to be displayed by the user interface of the first clientdevice.
 17. A non-transitory machine-readable storage medium comprisinginstructions that, when executed by a processor, cause the processor toperform operations comprising: receiving a message activitycommunication from a first client device, the message activitycommunication including data about a message processed by the firstclient device; in response to the data about the message indicating achange in a volume of past ephemeral messages exchanged between thefirst client device and a second client device, wherein the ephemeralmessages are associated with a message deletion trigger, accessing afirst message activity score from the database that is based on thevolume of past ephemeral messages exchanged between the first clientdevice and the second client device, adjusting the first messageactivity score based on the change in the volume of past ephemeralmessages exchanged between the first client device and the second clientdevice, determining whether the first message activity score is equal toor is greater than a first threshold activity score, in response to thefirst message activity score being equal to or greater than the firstthreshold activity score, causing a first achievement pictographassociated with the first message activity score and a first textualachievement message associated with the first message activity score tobe displayed on a user interface of the first client device and on auser interface of the second client device, in response to the dataabout the message indicating a change in a volume of past video messagesexchanged between the first client device and the second client device,accessing a second message activity score from the database that isbased on the volume of past video messages exchanged between the firstclient device and the second client device, adjusting the second messageactivity score based on the change in the volume of past video messagesexchanged between the first client device and the second client device,determining whether the second message activity score is equal to or isgreater than a second threshold activity score, and in response to thesecond message activity score being equal to or greater than the secondthreshold activity score, causing a second achievement pictographassociated with the second message activity score and a second textualachievement message associated with the second message activity score tobe displayed on a user interface of the first client device and on auser interface of the second client device.
 18. The non-transitorymachine-readable storage medium of claim 17, wherein the operationsfurther comprise: detecting that the first achievement pictograph isdisplayed on the user interface of the first client device; determiningthe first message activity score transgresses a second thresholdactivity score; and responsive to determining the first message activityscore transgresses the second threshold activity score, causing thefirst achievement pictograph to be removed from being displayed on theuser interface of the first client device.